package com.tedu.springdemo.day01;

import org.springframework.beans.factory.FactoryBean;

/**
 * 建议：工厂模式，使用Spring自带，叫做Spring工厂
 *
 * 从工厂获取【网络连接类：load,ping,conn】
 *
 * Spring工厂写法：
 * 1.实现接口FactoryBean<类>
 * 2.实现接口的所有方法**/
public class NetConSpringFactory implements FactoryBean<NetConnection> {

    //getObject()  生成对象的方法 用法：Spring容器调用此方法生成需要的对象
    //生成对象的方法，Spring容器调用此方法生成需要的对象
    @Override
    public NetConnection getObject() throws Exception {
        NetConnection nc=new NetConnection();
        nc.load(); nc.ping(); nc.conn();
        return nc;
    }
    //getObjectType() 获取对象类型的方法，Spring容器通过调用此方法获知当前创建对象的类型
    @Override
    public Class<?> getObjectType() {
        return NetConnection.class;
    }
    //获取对象是否是单例的信息，Spring容器通过调用此方法获知当前对象是否是单例
    //isSingleton() 获取对象是否单例模式 用法：Spring容器通过调用此方法获知当前对象是否是单例
    //Spring默认单例----id唯一（拿到都是唯一），当然Spring有多例
    //id唯一（拿到都是唯一），当前Spring有多礼模式
    @Override
    public boolean isSingleton() {
        return true;//支持单例模式
    }
}